﻿namespace Devonline.Communication;

/// <summary>
/// 定义客户端通讯方法的顶级接口
/// </summary>
/// <typeparam name="T"></typeparam>
public interface ICommunicationClient<T>
{
    /// <summary>
    /// 客户端接收数据的方法
    /// </summary>
    /// <param name="t"></param>
    /// <returns></returns>
    Task Receive(T t);
    /// <summary>
    /// 通道接收数据的方法
    /// 可以通过传递 PagedResult<T> 传递分页的数据
    /// </summary>
    /// <param name="data">传输的数据</param>
    /// <returns></returns>
    Task Receive(IEnumerable<T> data);
    /// <summary>
    /// 客户端退出时的方法
    /// </summary>
    /// <returns></returns>
    Task Abort();
}
